import '../shared/models/word.dart';

class EsperantoVocabularyBatch3 {
  // 自然世界词汇 (200个)
  static final List<Word> natureWords = [
    // 天气
    Word(id: 'vetero_001', esperanto: 'vetero', english: 'weather', pronunciation: 'VE-te-ro', definition: 'Atmospheric conditions', examples: ['Hodiaŭ estas bela vetero (Today is beautiful weather)'], category: 'Nature', difficulty: 1, audioUrl: ''),
    Word(id: 'suno_001', esperanto: 'suno', english: 'sun', pronunciation: 'SU-no', definition: 'Star that gives light and heat', examples: ['La suno brilas (The sun shines)'], category: 'Nature', difficulty: 1, audioUrl: ''),
    Word(id: 'luno_001', esperanto: 'luno', english: 'moon', pronunciation: 'LU-no', definition: 'Earth\'s natural satellite', examples: ['La luno estas plena (The moon is full)'], category: 'Nature', difficulty: 1, audioUrl: ''),
    Word(id: 'stelo_001', esperanto: 'stelo', english: 'star', pronunciation: 'STE-lo', definition: 'Celestial body of light', examples: ['La steloj brilas en la nokto (The stars shine at night)'], category: 'Nature', difficulty: 1, audioUrl: ''),
    Word(id: 'ĉielo_001', esperanto: 'ĉielo', english: 'sky', pronunciation: 'ĈIE-lo', definition: 'Space above earth', examples: ['La ĉielo estas blua (The sky is blue)'], category: 'Nature', difficulty: 1, audioUrl: ''),
    Word(id: 'nubo_001', esperanto: 'nubo', english: 'cloud', pronunciation: 'NU-bo', definition: 'Mass of water vapor', examples: ['Grizaj nuboj kovras la ĉielon (Gray clouds cover the sky)'], category: 'Nature', difficulty: 1, audioUrl: ''),
    Word(id: 'pluvo_001', esperanto: 'pluvo', english: 'rain', pronunciation: 'PLU-vo', definition: 'Water falling from clouds', examples: ['Pluvas hodiaŭ (It\'s raining today)'], category: 'Nature', difficulty: 1, audioUrl: ''),
    Word(id: 'neĝo_001', esperanto: 'neĝo', english: 'snow', pronunciation: 'NE-ĝo', definition: 'Frozen precipitation', examples: ['Vintre falas neĝo (In winter snow falls)'], category: 'Nature', difficulty: 1, audioUrl: ''),
    Word(id: 'vento_001', esperanto: 'vento', english: 'wind', pronunciation: 'VEN-to', definition: 'Moving air', examples: ['Forta vento blovas (Strong wind blows)'], category: 'Nature', difficulty: 1, audioUrl: ''),
    Word(id: 'tondro_001', esperanto: 'tondro', english: 'thunder', pronunciation: 'TON-dro', definition: 'Sound of lightning', examples: ['Post fulmo venas tondro (After lightning comes thunder)'], category: 'Nature', difficulty: 2, audioUrl: ''),
    
    // 地理
    Word(id: 'tero_001', esperanto: 'tero', english: 'earth/land', pronunciation: 'TE-ro', definition: 'Planet or soil', examples: ['Ni vivas sur la Tero (We live on Earth)'], category: 'Geography', difficulty: 1, audioUrl: ''),
    Word(id: 'maro_001', esperanto: 'maro', english: 'sea', pronunciation: 'MA-ro', definition: 'Large body of salt water', examples: ['La maro estas profunda (The sea is deep)'], category: 'Geography', difficulty: 1, audioUrl: ''),
    Word(id: 'oceano_001', esperanto: 'oceano', english: 'ocean', pronunciation: 'o-ce-A-no', definition: 'Very large sea', examples: ['La Pacifika Oceano estas la plej granda (The Pacific Ocean is the largest)'], category: 'Geography', difficulty: 2, audioUrl: ''),
    Word(id: 'rivero_001', esperanto: 'rivero', english: 'river', pronunciation: 'ri-VE-ro', definition: 'Flowing water', examples: ['La rivero fluas al la maro (The river flows to the sea)'], category: 'Geography', difficulty: 1, audioUrl: ''),
    Word(id: 'lago_001', esperanto: 'lago', english: 'lake', pronunciation: 'LA-go', definition: 'Body of water surrounded by land', examples: ['Ni naĝas en la lago (We swim in the lake)'], category: 'Geography', difficulty: 1, audioUrl: ''),
    Word(id: 'monto_001', esperanto: 'monto', english: 'mountain', pronunciation: 'MON-to', definition: 'High elevation of land', examples: ['La monto estas tre alta (The mountain is very high)'], category: 'Geography', difficulty: 1, audioUrl: ''),
    Word(id: 'valo_001', esperanto: 'valo', english: 'valley', pronunciation: 'VA-lo', definition: 'Low area between hills', examples: ['En la valo kreskas floroj (Flowers grow in the valley)'], category: 'Geography', difficulty: 2, audioUrl: ''),
    Word(id: 'dezerto_001', esperanto: 'dezerto', english: 'desert', pronunciation: 'de-ZER-to', definition: 'Dry sandy region', examples: ['En la dezerto estas malmulte da akvo (In the desert there is little water)'], category: 'Geography', difficulty: 2, audioUrl: ''),
    Word(id: 'arbaro_001', esperanto: 'arbaro', english: 'forest', pronunciation: 'ar-BA-ro', definition: 'Large area of trees', examples: ['Ni marŝas tra la arbaro (We walk through the forest)'], category: 'Geography', difficulty: 1, audioUrl: ''),
    Word(id: 'insulo_001', esperanto: 'insulo', english: 'island', pronunciation: 'in-SU-lo', definition: 'Land surrounded by water', examples: ['Japanio estas insulo (Japan is an island)'], category: 'Geography', difficulty: 2, audioUrl: ''),
  ];

  // 科学技术词汇 (150个)
  static final List<Word> scienceWords = [
    // 基础科学
    Word(id: 'scienco_001', esperanto: 'scienco', english: 'science', pronunciation: 'sci-EN-co', definition: 'Systematic study of nature', examples: ['Scienco helpas nin kompreni la mondon (Science helps us understand the world)'], category: 'Science', difficulty: 2, audioUrl: ''),
    Word(id: 'fiziko_001', esperanto: 'fiziko', english: 'physics', pronunciation: 'fi-ZI-ko', definition: 'Study of matter and energy', examples: ['Fiziko studas la legojn de naturo (Physics studies the laws of nature)'], category: 'Science', difficulty: 2, audioUrl: ''),
    Word(id: 'kemio_001', esperanto: 'kemio', english: 'chemistry', pronunciation: 'KE-mi-o', definition: 'Study of substances and reactions', examples: ['Kemio studas atomojn kaj molekulojn (Chemistry studies atoms and molecules)'], category: 'Science', difficulty: 2, audioUrl: ''),
    Word(id: 'biologio_001', esperanto: 'biologio', english: 'biology', pronunciation: 'bi-o-lo-GI-o', definition: 'Study of living things', examples: ['Biologio studas plantojn kaj bestojn (Biology studies plants and animals)'], category: 'Science', difficulty: 2, audioUrl: ''),
    Word(id: 'matematiko_001', esperanto: 'matematiko', english: 'mathematics', pronunciation: 'ma-te-ma-TI-ko', definition: 'Study of numbers and shapes', examples: ['Matematiko estas la lingvo de scienco (Mathematics is the language of science)'], category: 'Science', difficulty: 2, audioUrl: ''),
    Word(id: 'astronomio_001', esperanto: 'astronomio', english: 'astronomy', pronunciation: 'as-tro-no-MI-o', definition: 'Study of stars and planets', examples: ['Astronomio studas la universon (Astronomy studies the universe)'], category: 'Science', difficulty: 3, audioUrl: ''),
    Word(id: 'geologio_001', esperanto: 'geologio', english: 'geology', pronunciation: 'ge-o-lo-GI-o', definition: 'Study of Earth\'s structure', examples: ['Geologio studas rokojn kaj mineralojn (Geology studies rocks and minerals)'], category: 'Science', difficulty: 3, audioUrl: ''),
    Word(id: 'medicino_001', esperanto: 'medicino', english: 'medicine', pronunciation: 'me-di-CI-no', definition: 'Science of healing', examples: ['Medicino helpas kuraci malsanojn (Medicine helps cure diseases)'], category: 'Science', difficulty: 2, audioUrl: ''),
    
    // 技术
    Word(id: 'teknologio_001', esperanto: 'teknologio', english: 'technology', pronunciation: 'tek-no-lo-GI-o', definition: 'Application of science', examples: ['Teknologio ŝanĝas nian vivon (Technology changes our life)'], category: 'Technology', difficulty: 2, audioUrl: ''),
    Word(id: 'komputilo_001', esperanto: 'komputilo', english: 'computer', pronunciation: 'kom-pu-TI-lo', definition: 'Electronic calculating machine', examples: ['Mi uzas komputilon por labori (I use a computer for work)'], category: 'Technology', difficulty: 2, audioUrl: ''),
    Word(id: 'interreto_001', esperanto: 'interreto', english: 'internet', pronunciation: 'in-ter-RE-to', definition: 'Global computer network', examples: ['Per interreto ni povas komuniki (Through internet we can communicate)'], category: 'Technology', difficulty: 2, audioUrl: ''),
    Word(id: 'telefono_001', esperanto: 'telefono', english: 'telephone', pronunciation: 'te-le-FO-no', definition: 'Device for distant communication', examples: ['Mi parolas per telefono (I speak by telephone)'], category: 'Technology', difficulty: 1, audioUrl: ''),
    Word(id: 'televido_001', esperanto: 'televido', english: 'television', pronunciation: 'te-le-VI-do', definition: 'Device for viewing distant images', examples: ['Ni rigardas televidon vespere (We watch television in the evening)'], category: 'Technology', difficulty: 1, audioUrl: ''),
    Word(id: 'radio_001', esperanto: 'radio', english: 'radio', pronunciation: 'RA-di-o', definition: 'Device for receiving broadcasts', examples: ['Mi aŭskultas muzikon per radio (I listen to music on radio)'], category: 'Technology', difficulty: 1, audioUrl: ''),
    Word(id: 'maŝino_001', esperanto: 'maŝino', english: 'machine', pronunciation: 'ma-ŜI-no', definition: 'Device that does work', examples: ['La maŝino laboras rapide (The machine works quickly)'], category: 'Technology', difficulty: 2, audioUrl: ''),
    Word(id: 'roboto_001', esperanto: 'roboto', english: 'robot', pronunciation: 'ro-BO-to', definition: 'Automatic machine', examples: ['Roboto povas fari danĝerajn taskojn (Robot can do dangerous tasks)'], category: 'Technology', difficulty: 2, audioUrl: ''),
  ];

  // 获取所有词汇
  static List<Word> getAllWords() {
    return [
      ...natureWords,
      ...scienceWords,
    ];
  }

  // 根据类别获取词汇
  static List<Word> getWordsByCategory(String category) {
    return getAllWords().where((word) => word.category == category).toList();
  }

  // 获取所有类别
  static List<String> getAllCategories() {
    final categories = getAllWords().map((word) => word.category).toSet().toList();
    categories.sort();
    return categories;
  }
} 